home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 57805 / 57805.xpi / content / hideguibars.js < prev    next >
Text File  |  2010-01-23  |  8KB  |  234 lines

  1. /* 
  2.          #################################################################
  3.          #   Firefox GUI Minify                                          #
  4.          #################################################################
  5.          #   Author:     Domenico Martella                               #
  6.          #   E-mail:     domenico.martella@alcacoop.it                   #
  7.          #   Date:       2010-01-04                                      #
  8.          #################################################################
  9.          #                                                               #
  10.          #       Copyright (C) 2010  - Alca Soc. Coop. (Lecce, IT)       #
  11.          #       http://www.alcacoop.it                                  #
  12.          #                                                               #
  13.          # This program is free software; you can redistribute           #
  14.          # it and/or modify it under the terms of the GNU General        #
  15.          # Public License as published by the Free Software              #
  16.          # Foundation; either version 3 of the License, or (at your      #
  17.          # option) any later version.                                    #
  18.          #                                                               #
  19.          # This program is distributed in the hope that it will be       #
  20.          # useful, but WITHOUT ANY WARRANTY; without even the            #
  21.          # implied warranty of MERCHANTABILITY or FITNESS FOR A          #
  22.          # PARTICULAR PURPOSE.  See the GNU General Public License       #
  23.          # for more details.                                             #
  24.          #                                                               #
  25.          # You should have received a copy of the GNU General            #
  26.          # Public License along with this program; if not, write to      #
  27.          # the Free Software Foundation, Inc., 59 Temple Place -         #
  28.          # Suite 330, Boston, MA  02111-1307, USA.                       #
  29.          #################################################################
  30. */ 
  31.  
  32.  
  33. var HGBExtension = {
  34.  
  35.   last_state : Application.prefs.getValue("gui_minify.laststate",true), //1 = hidden, 0 = visible
  36.   temp_show : false,
  37.  
  38.  
  39.   init: function(){
  40.     HGBExtension.tryhide(false);
  41.   },
  42.  
  43.   tryshow : function(ch_state){
  44.     HGBStatusBar._closePopup("hgb-lu");
  45.     HGBStatusBar._closePopup("hgb-pb");
  46.  
  47.     if (ch_state == null)
  48.     HGBExtension.last_state = 1;
  49.  
  50.     if (ch_state == false){
  51.       HGBExtension.temp_show = true;
  52.     };
  53.  
  54.     //TABBAR
  55.     if (gBrowser.mTabs.length>1)
  56.     gBrowser.setStripVisibilityTo(true);
  57.     //NAVBAR
  58.     if (HGBExtension._isNBDisabled()=="false") 
  59.       document.getElementById("nav-bar").setAttribute("collapsed",false);
  60.     //MENUBAR
  61.     document.getElementById("toolbar-menubar").setAttribute("collapsed",false);
  62.     //BOOKMARKS
  63.     if (HGBExtension._isPBDisabled()=="false") 
  64.       document.getElementById("PersonalToolbar").setAttribute("collapsed",false);
  65.     //STATUSBAR
  66.     document.getElementById("status-bar").setAttribute("collapsed",false);
  67.   },
  68.  
  69.   tryhide : function(ch_state){
  70.     if (
  71.       !Application.prefs.getValue("gui_minify.tabbar", true)&&
  72.       !Application.prefs.getValue("gui_minify.addrbar", true)&&
  73.       !Application.prefs.getValue("gui_minify.menubar", true)&&
  74.       !Application.prefs.getValue("gui_minify.statusbar", true)&&
  75.       !Application.prefs.getValue("gui_minify.bmarksbar", true)
  76.       ) return;
  77.  
  78.  
  79.     if ((ch_state==null)||(HGBExtension.temp_show))
  80.       HGBExtension.last_state = 0;
  81.  
  82.     /*
  83.      Gestione del CTRL-L da GUI hidden (v.di overlay.xul)
  84.      Nota: (in overlay.xul)
  85.        al CTRL-L ├¿ agganciata la tryshow(false) e all'evento enterText la tryhide(false).
  86.        In questo modo se viene premuto CRTL-L da gui hidden l'interfaccia viene mostrata 
  87.        solo momentaneamente.
  88.     */
  89.     if (HGBExtension.last_state) return;
  90.  
  91.     //TABBAR
  92.     if (Application.prefs.getValue("gui_minify.tabbar", true))
  93.       gBrowser.setStripVisibilityTo(false);
  94.     //NAVBAR
  95.     if (Application.prefs.getValue("gui_minify.addrbar", true))
  96.       document.getElementById("nav-bar").setAttribute("collapsed",true);
  97.     //MENUBAR
  98.     if (Application.prefs.getValue("gui_minify.menubar", true))
  99.       document.getElementById("toolbar-menubar").setAttribute("collapsed",true);
  100.     //STATUSBAR
  101.     if (Application.prefs.getValue("gui_minify.statusbar", true))
  102.       document.getElementById("status-bar").setAttribute("collapsed",true);
  103.     //BOOKMARKS
  104.     if (Application.prefs.getValue("gui_minify.bmarksbar", true))//&&(!HGBExtension._isPBDisabled()=="false"))
  105.       document.getElementById("PersonalToolbar").setAttribute("collapsed",true);
  106.  
  107.     HGBExtension.temp_show = false;
  108.   },
  109.  
  110.  
  111.   toggleBars : function(){
  112.     if ((HGBExtension.last_state==1)||(HGBExtension.temp_show))
  113.       HGBExtension.tryhide();
  114.     else
  115.       HGBExtension.tryshow();
  116.     },
  117.  
  118.  
  119.   tabOpenHandler : function(event){
  120.     var extension = HGBExtension;
  121.     event.data.events.addListener('load', function(event){
  122.       if (event.data.uri.spec!="about:blank")
  123.         return;
  124.       if (extension.last_state==0){ 
  125.         extension.tryshow(false);
  126.         document.getElementById("urlbar").focus();
  127.       }
  128.     },false);
  129.   },
  130.  
  131.   tabCloseHandler : function(event){
  132.     if (HGBExtension.last_state==0) 
  133.       HGBExtension.tryhide(false);
  134.   },
  135.  
  136.   keydownHandler : function(event){
  137.     if (KeyUtils.compareKeyevent(event, Application.prefs.getValue("gui_minify.allshortcut",true)))
  138.       HGBExtension.toggleBars(); 
  139.   },
  140.  
  141.  
  142.  
  143.   _isPBDisabled: function(){
  144.     var _rdf = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Ci.nsIRDFService);
  145.     var _dataSource = _rdf.GetDataSource("rdf:local-store");
  146.     var currentsetResource = _rdf.GetResource("collapsed");
  147.     var toolbar = _rdf.GetResource("chrome://browser/content/browser.xul#PersonalToolbar");
  148.     var target = _dataSource.GetTarget(toolbar, currentsetResource, true);
  149.     if (target instanceof Ci.nsIRDFLiteral)
  150.       return target.Value;
  151.     return "false";
  152.   },
  153.  
  154.  
  155.   _isNBDisabled: function(){//TODO: refactoring
  156.     var _rdf = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Ci.nsIRDFService);
  157.     var _dataSource = _rdf.GetDataSource("rdf:local-store");
  158.     var currentsetResource = _rdf.GetResource("collapsed");
  159.     var toolbar = _rdf.GetResource("chrome://browser/content/browser.xul#nav-bar");
  160.     var target = _dataSource.GetTarget(toolbar, currentsetResource, true);
  161.     if (target instanceof Ci.nsIRDFLiteral)
  162.       return target.Value;
  163.     return "false";
  164.   },
  165. }
  166.  
  167.  
  168. var PrefsObserver = {
  169.   prefs: null,
  170.   all_shortcut: null,
  171.   sb_color: null,
  172.   sb_bgcolor: null,
  173.  
  174.   // Initialize the extension
  175.   onLoad: function(){
  176.     // Register to receive notifications of preference changes
  177.  
  178.     this.prefs = Components.classes["@mozilla.org/preferences-service;1"]
  179.     .getService(Components.interfaces.nsIPrefService)
  180.     .getBranch("gui_minify.");
  181.  
  182.     this.prefs.QueryInterface(Components.interfaces.nsIPrefBranch2);
  183.     this.prefs.addObserver("", this, false);
  184.  
  185.     this.all_shortcut = this.prefs.getCharPref("allshortcut");
  186.  
  187.     this.refreshColors();    
  188.   },
  189.  
  190.  
  191.   observe: function(subject, topic, data){
  192.  
  193.     if (topic != "nsPref:changed"){
  194.       return;
  195.     }
  196.  
  197.     switch(data){
  198.       case "allshortcut":
  199.         this.all_shortcut = this.prefs.getCharPref("allshortcut");
  200.         //this.refreshKeybinding();
  201.         break;
  202.       case "sbcolor":
  203.         this.a_color = this.prefs.getCharPref("sbcolor");
  204.         this.refreshColors();
  205.         break;
  206.       case "sbbgcolor":
  207.         this.a_bgcolor = this.prefs.getCharPref("sbbgcolor");
  208.         this.refreshColors();
  209.         break;
  210.       case "menubar":
  211.       case "addrbar":
  212.       case "tabbar":
  213.       case "statusbar":
  214.       case "bmarksbar":
  215.         this.refreshHideState();
  216.         break;
  217.     }
  218.   },
  219.  
  220.   refreshHideState: function(){
  221.     if (HGBExtension.last_state)
  222.     return;
  223.     //SYNC BAR'S VISIBILITY STATE
  224.     HGBExtension.tryshow(false);
  225.     HGBExtension.tryhide(false);
  226.   },
  227.  
  228.   refreshColors: function(){
  229.     //MODIFICA I COLORI DELLA STATUSBAR-REPLACER
  230.     HGBStatusBar._changeSBColor();
  231.   },
  232.  
  233. }
  234.